package com.jrx.anytxn.param.service.partner;

import com.jrx.anytxn.common.exception.TxnBizException;
import com.jrx.anytxn.common.exception.TxnException;
import com.jrx.anytxn.i18n.response.TxnPage;
import com.jrx.anytxn.param.dto.partner.PrVerifyFileTableReq;
import com.jrx.anytxn.param.dto.partner.PrVerifyFileTableRes;
import com.jrx.anytxn.param.entity.PrVerifyFileTable;

import java.util.List;

public interface IPrVerifyFileTableService {

    /**
     * 通过参数ID和租户ID查询
     * @param tenantId
     * @param verifyFileId
     * @return
     * @throws TxnException
     */
    PrVerifyFileTableRes getByTenIdIdAndVerifyFileId(String tenantId, String verifyFileId) throws TxnException;


    /**
     * 添加对账文件配置信息
     * @param prVerifyFileTableReq
     * @return
     * @throws TxnException
     */
    PrVerifyFileTableRes addPrVerifyFileTable(PrVerifyFileTableReq prVerifyFileTableReq) throws TxnException;

    /**
     * 获取所有对账文件配置信息
     * @param tenantId
     * @return
     */
    List<PrVerifyFileTableRes> findAllByTenId(String tenantId);

    /**
     * 根据租户ID分页查询
     *
     * @param pageNum  页码
     * @param pageSize 页大小
     * @param tenantId 租户ID
     * @return TxnPage<PrVerifyFileTableRes>
     */
    TxnPage<PrVerifyFileTableRes> findAllPageByTenantId(Integer pageNum, Integer pageSize, String tenantId) throws TxnException;

    /**
     * 根据租户ID和产品ID修改
     * @param prVerifyFileTableReq
     * @return
     * @throws TxnBizException
     */
    PrVerifyFileTableRes modifyPrVerifyFileTable(PrVerifyFileTableReq prVerifyFileTableReq) throws TxnBizException;

    /**
     * 根据租户ID和参数编号删除信息
     * @param tenantId
     * @param verifyFileId
     * @return
     * @throws TxnBizException
     */
    Boolean removeByTenantIdAndVerifyFileId(String tenantId, String verifyFileId) throws TxnBizException;

    /**
     * 通过参数ID和租户ID查询
     * 供api接口使用 页面调用不可使用该方法
     *
     * @param tenantId
     * @param verifyFileId
     * @return
     * @throws TxnBizException
     */
    PrVerifyFileTable getByVerifyFileId(String tenantId, String verifyFileId) throws TxnBizException;

    /**
     * 根据机构号和租户编号查询
     * @param organizationId
     * @param tenantId
     * @return
     */
    List<PrVerifyFileTableRes> getVerifyFileByOrgIdAndTenId(String organizationId, String tenantId);


}
